#pragma once
#include <string>

namespace DYGraphics
{
	typedef void (*action_callback)();
	typedef void (*action_int_int_callback)(int, int);
	typedef void (*action_float_float_callback)(float, float);

	struct _declspec(dllexport) DeviceConfig
	{
		int winWidth = 800;
		int winHeight = 600;
		std::string winName = "DYEngine";
		action_callback inputEventEmit;
		action_callback updateCameraCb;
		action_callback updateSceneCb;
		action_callback renderSceneCb;
		action_callback updateFrameCb;

		action_int_int_callback sizeChangeCb;
		action_float_float_callback cursorMoveCb;
		action_int_int_callback keyCb;					// (keyCode, pressMode)
		action_int_int_callback mouseButtonCb;
		action_float_float_callback scrollCb;
	};
}